import { asyncRoutes, constantRoutes } from '@/router'
// import { constantRoutes } from '@/router/index'
const state = {
  // 路由表, 标记当前用户所拥有的所有路由
  routes: constantRoutes // 默认静态路由表
}
const mutations = {
  // otherRoutes登录成功后, 需要添加的新路由
  setRoutes(state, otherRoutes) {
    // 静态路由基础上, 累加其他权限路由 总的左侧菜单
    state.routes = [...constantRoutes, ...otherRoutes]
  }
}
const actions = {
  // 筛选路由权限
  // menus：调用actions传递用户页面权限
  filterRoutes(context, menus) {
    // 动态路由表有八个路由
    // 用户路由权限有三个
    // 如果路由模块的name，在menus数组中包含，就是这个模块开放
    // otherRoutes是过滤出来的动态路由
    const otherRoutes = asyncRoutes.filter(item => {
      // 如果路由模块的首页name, 在menus数组中包含, 就是这个模块开放
      if (menus.includes(item.children[0].name)) {
        return true
      } else {
        return false
      }
    })
    context.commit('setRoutes', otherRoutes)
    return otherRoutes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
